/**
 根据对象生成XML文档
 使用java提供的java.beans.XMLEncoder和java.beans.XMLDecoder类。
 这是JDK1.4以后才出现的类

 步骤：
 (1)实例化XML编码器
 XMLEncoder xmlEncoder=new XMLEncoder(new BufferedOutputStream(new
 FileOutputStream(new File("a.xml"))));
 (2)输出对象
 (3)关闭
 */

package 第十七章_XML与JSON.对象生成XML;

import org.junit.Test;

import java.beans.XMLDecoder;
import java.beans.XMLEncoder;
import java.io.*;

public class 对象转XML_run {
    @Test
    //读xml


    public void xmlDeCoder() throws FileNotFoundException {
        //读取xml
        final BufferedInputStream in = new BufferedInputStream(new FileInputStream("E:\\idea-workspace\\java_lesson\\src\\第十七章_XML与JSON\\对象生成XML\\People_new_write.xml"));
        XMLDecoder decoder=new XMLDecoder(in);
        Person p=(Person) decoder.readObject();
        System.out.println(p);
    }
    @Test
    //写xml
    public void xmlEnCoder() throws IOException {
        //封装好的项目类
        XMLEncoder xmlEncoder;
        //创建文件
        File file = new File("E:\\idea-workspace\\java_lesson\\src\\第十七章_XML与JSON\\对象生成XML\\People_new_write.xml");
        file.createNewFile();
        //装填输出流路径 追加模式关闭 覆盖模式开启
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file,false));
        //编码器装填完毕
        xmlEncoder = new XMLEncoder(bos);
        //封装格式对象生成
        Person p=new Person();
        p.setPersonid("标签的id");
        p.setAddress("地址:是这个地址");
        p.setFax("fax:是这个fax");
        p.setName("姓名:是这个姓名");
        p.setEmail("邮箱:是这个邮箱");
        //封装好的XML容器 写入对象
        xmlEncoder.writeObject(p);
        xmlEncoder.close();
        System.out.println("写入完毕");
    }
}
